Keep HTTP bridge missing-created watchdog armed after prelude - #1580
Keep HTTP bridge missing-created watchdog armed after prelude#1580Komzpa wants to merge 4 commits into
Conversation
211e6af to
0fc6fce
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The gap is real: with
Note overlap with #1543/#1555 (bounded-retry approaches to the same lost-created stall, both superseded by merged #1394) and #1563, which fixes the durable-anchor flavor of #1534 — reconcile anchoring semantics with whichever lands first. |
|
Ping @Komzpa — the direction here is right and we want to land it, but the P1 from the review above is still open at 64e22bd and the fix is small. Rather than deleting the |
64e22bd to
7ea33f4
Compare
Summary
Fix the HTTP bridge missing-
response.createdwatchdog so upstream prelude events do not disarm it before a response id exists.Before this change,
_http_bridge_eventless_precreated_deadline()returned no deadline as soon asresponse_event_countwas nonzero. That treated any upstream event as progress even when the bridge still had noresponse.created, noresponse_id, and no visible downstream output. A client could then see only the initial SSE heartbeat while the bridge stayed occupied until a later idle or stream cleanup path.This keeps the watchdog armed until real progress is observed:
response.created/latency, visible downstream output, terminal cleanup, or the existing explicit disqualifiers.Validation
uv run pytest tests/unit/test_proxy_http_bridge.py -k 'eventless_precreated_deadline or eventless_timeout_force_retires or missing_response_created or reader_wakes_and_retires_lone_eventless_owner_without_keepalives or response_create_gate_timeout_does_not_retire_active_response_progress'uv run pytest tests/unit/test_proxy_http_bridge.pyuv run ruff check app/modules/proxy/_service/http_bridge/helpers.py tests/unit/test_proxy_http_bridge.pygit diff --check